diff options
Diffstat (limited to 'src/routes/blog/[id=int]/+page.svelte')
| -rw-r--r-- | src/routes/blog/[id=int]/+page.svelte | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/src/routes/blog/[id=int]/+page.svelte b/src/routes/blog/[id=int]/+page.svelte new file mode 100644 index 0000000..84d33ef --- /dev/null +++ b/src/routes/blog/[id=int]/+page.svelte @@ -0,0 +1,31 @@ +<script lang="ts"> + import { replaceState } from '$app/navigation'; + import { onMount, tick } from 'svelte'; + + import type { PageProps } from './$types'; + import { resolve } from '$app/paths'; + import { page } from '$app/state'; + import { forceTrailingSlash } from '$/lib'; + import Post from '$/lib/blog/Post.svelte'; + + let { data }: PageProps = $props(); + + let route = $derived( + forceTrailingSlash( + resolve('/blog/[id=int]-[slug]', { + id: data.post.metadata.id.toString(), + slug: data.post.metadata.slug, + }), + ), + ); + + onMount(() => { + tick().then(() => replaceState(route, page.state)); + }); +</script> + +<svelte:head> + <link rel="canonical" href={new URL(route, page.url).href} /> +</svelte:head> + +<Post post={data.post} filename={data.filename} /> |